home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / xfs / xfs_log_recover.h < prev    next >
C/C++ Source or Header  |  2005-10-18  |  3KB  |  82 lines

  1. /*
  2.  * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
  3.  *
  4.  * This program is free software; you can redistribute it and/or modify it
  5.  * under the terms of version 2 of the GNU General Public License as
  6.  * published by the Free Software Foundation.
  7.  *
  8.  * This program is distributed in the hope that it would be useful, but
  9.  * WITHOUT ANY WARRANTY; without even the implied warranty of
  10.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11.  *
  12.  * Further, this software is distributed without any warranty that it is
  13.  * free of the rightful claim of any third person regarding infringement
  14.  * or the like.  Any license provided herein, whether implied or
  15.  * otherwise, applies only to this software file.  Patent licenses, if
  16.  * any, provided herein do not apply to combinations of this program with
  17.  * other software, or any other product whatsoever.
  18.  *
  19.  * You should have received a copy of the GNU General Public License along
  20.  * with this program; if not, write the Free Software Foundation, Inc., 59
  21.  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  22.  *
  23.  * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
  24.  * Mountain View, CA  94043, or:
  25.  *
  26.  * http://www.sgi.com
  27.  *
  28.  * For further information regarding this notice, see:
  29.  *
  30.  * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
  31.  */
  32. #ifndef    __XFS_LOG_RECOVER_H__
  33. #define __XFS_LOG_RECOVER_H__
  34.  
  35. /*
  36.  * Macros, structures, prototypes for internal log manager use.
  37.  */
  38.  
  39. #define XLOG_RHASH_BITS  4
  40. #define XLOG_RHASH_SIZE    16
  41. #define XLOG_RHASH_SHIFT 2
  42. #define XLOG_RHASH(tid)    \
  43.     ((((__uint32_t)tid)>>XLOG_RHASH_SHIFT) & (XLOG_RHASH_SIZE-1))
  44.  
  45. #define XLOG_MAX_REGIONS_IN_ITEM   (XFS_MAX_BLOCKSIZE / XFS_BLI_CHUNK / 2 + 1)
  46.  
  47.  
  48. /*
  49.  * item headers are in ri_buf[0].  Additional buffers follow.
  50.  */
  51. typedef struct xlog_recover_item {
  52.     struct xlog_recover_item *ri_next;
  53.     struct xlog_recover_item *ri_prev;
  54.     int             ri_type;
  55.     int             ri_cnt;    /* count of regions found */
  56.     int             ri_total;    /* total regions */
  57.     xfs_log_iovec_t         *ri_buf;    /* ptr to regions buffer */
  58. } xlog_recover_item_t;
  59.  
  60. struct xlog_tid;
  61. typedef struct xlog_recover {
  62.     struct xlog_recover *r_next;
  63.     xlog_tid_t        r_log_tid;        /* log's transaction id */
  64.     xfs_trans_header_t  r_theader;        /* trans header for partial */
  65.     int            r_state;        /* not needed */
  66.     xfs_lsn_t        r_lsn;        /* xact lsn */
  67.     xlog_recover_item_t *r_itemq;        /* q for items */
  68. } xlog_recover_t;
  69.  
  70. #define ITEM_TYPE(i)    (*(ushort *)(i)->ri_buf[0].i_addr)
  71.  
  72. /*
  73.  * This is the number of entries in the l_buf_cancel_table used during
  74.  * recovery.
  75.  */
  76. #define    XLOG_BC_TABLE_SIZE    64
  77.  
  78. #define    XLOG_RECOVER_PASS1    1
  79. #define    XLOG_RECOVER_PASS2    2
  80.  
  81. #endif    /* __XFS_LOG_RECOVER_H__ */
  82.